ডেটা অ্যাক্সেস অ্যাপ্লিকেশন ডেভেলপমেন্টের একটি অত্যন্ত গুরুত্বপূর্ণ অংশ, যার মাধ্যমে আপনি ডেটাবেসের সাথে যোগাযোগ করতে পারেন এবং ডেটা সংগ্রহ, সংরক্ষণ, আপডেট বা মুছে ফেলতে পারেন। ASP.NET Core এ ডেটা অ্যাক্সেসের জন্য বিভিন্ন টুল এবং টেকনিক রয়েছে, যার মধ্যে সবচেয়ে জনপ্রিয় হল Entity Framework Core (EF Core), একটি ORM (Object Relational Mapping) টুল। EF Core ডেটাবেসের সাথে কাজ করার জন্য সিম্পল API প্রদান করে, যা কোডের মাধ্যমে ডেটাবেসের টেবিলের সাথে কাজ করতে সাহায্য করে।
Entity Framework Core (EF Core) হল একটি ওপেন সোর্স এবং ক্রস-প্ল্যাটফর্ম ORM (Object Relational Mapper), যা ডেটাবেসের সাথে ইন্টারঅ্যাক্ট করার জন্য ব্যবহার করা হয়। EF Core ডেভেলপারদের SQL কোড লিখতে না দিয়ে C# ক্লাসের মাধ্যমে ডেটাবেসের ডেটা ম্যানিপুলেট করতে সাহায্য করে।
EF Core ব্যবহার করে আপনি নিম্নলিখিত কাজগুলো করতে পারেন:
EF Core-এ সাধারণত DbContext ক্লাসের মাধ্যমে ডেটাবেসের সাথে যোগাযোগ করা হয়।
DbContext হল EF Core এর প্রধান কম্পোনেন্ট, যা ডেটাবেসের টেবিলের সাথে অ্যাপ্লিকেশন মডেলগুলো ম্যাপ করে এবং ডেটা ম্যানিপুলেশনের জন্য API প্রদান করে।
DbContext ক্লাস তৈরি করা
DbContext ক্লাস তৈরি করতে, আপনাকে আপনার মডেল ক্লাসগুলোকে DbSet প্রপার্টি হিসেবে যুক্ত করতে হবে:
public class ApplicationDbContext : DbContext
{
public DbSet<Customer> Customers { get; set; }
public DbSet<Order> Orders { get; set; }
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{ }
}
এখানে Customers
এবং Orders
হল DbSet, যা ডেটাবেসের টেবিলের সাথে সম্পর্কিত।
প্রথম মাইগ্রেশন তৈরি করতে:
dotnet ef migrations add InitialCreate
মাইগ্রেশন ডেটাবেসে প্রয়োগ করতে:
dotnet ef database update
LINQ (Language Integrated Query) হল একটি শক্তিশালী ফিচার যা C# এর সাথে SQL-এর মত কুয়েরি লোগিক একীভূত করে, যাতে ডেটা অ্যাক্সেস করা সহজ হয়।
LINQ ব্যবহার করে ডেটা রিড করা
DbContext এর মাধ্যমে LINQ কোয়েরি ব্যবহার করে ডেটা অ্যাক্সেস করা যায়:
var customers = dbContext.Customers
.Where(c => c.City == "Dhaka")
.ToList();
এখানে Where
ক্লজ ব্যবহার করে নির্দিষ্ট শর্ত অনুযায়ী ডেটা ফিল্টার করা হয়েছে।
লিনক কুয়েরি অপারেটর
EF Core তে LINQ এর সাহায্যে বিভিন্ন ধরনের কুয়েরি অপারেটর ব্যবহার করা হয়:
উদাহরণ:
var orderedCustomers = dbContext.Customers
.OrderBy(c => c.Name)
.ToList();
CRUD অপারেশন হল ডেটাবেস ম্যানিপুলেশনের মৌলিক কার্যাবলী। EF Core তে এই অপারেশনগুলো খুব সহজেই করা যায়।
Create (নতুন রেকর্ড তৈরি করা):
var customer = new Customer { Name = "John Doe", City = "Dhaka" };
dbContext.Customers.Add(customer);
dbContext.SaveChanges();
Read (ডেটা পড়া):
var customer = dbContext.Customers
.FirstOrDefault(c => c.Name == "John Doe");
Update (ডেটা আপডেট করা):
var customer = dbContext.Customers
.FirstOrDefault(c => c.Name == "John Doe");
if (customer != null)
{
customer.City = "Chittagong";
dbContext.SaveChanges();
}
Delete (ডেটা মুছে ফেলা):
var customer = dbContext.Customers
.FirstOrDefault(c => c.Name == "John Doe");
if (customer != null)
{
dbContext.Customers.Remove(customer);
dbContext.SaveChanges();
}
ফর্ম ভ্যালিডেশন এবং ডেটা ভ্যালিডেশন গুরুত্বপূর্ণ, কারণ এটি নিশ্চিত করে যে ইউজার ইনপুট সঠিক এবং নিরাপদ।
Model Binding এবং Validation Attributes
ASP.NET Core মডেল বাইন্ডিং এর মাধ্যমে ইউজার ইনপুটকে অটোমেটিকভাবে মডেলে বাউন্ড করা হয় এবং ডেটা ভ্যালিডেশন অ্যাট্রিবিউট ব্যবহার করে ইনপুট চেক করা হয়। উদাহরণ:
public class Customer
{
[Required]
public string Name { get; set; }
[EmailAddress]
public string Email { get; set; }
}
Custom Validation
কখনও কখনও, আপনার নির্দিষ্ট ভ্যালিডেশন লজিক প্রয়োজন হয়, তখন আপনি কাস্টম ভ্যালিডেশন অ্যাট্রিবিউট ব্যবহার করতে পারেন:
public class ValidAgeAttribute : ValidationAttribute
{
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
if ((int)value < 18)
{
return new ValidationResult("Age must be greater than or equal to 18.");
}
return ValidationResult.Success;
}
}
সারাংশ
ডেটা অ্যাক্সেস ASP.NET Core-এ খুবই গুরুত্বপূর্ণ, এবং এটি Entity Framework Core (EF Core) দিয়ে সহজেই পরিচালিত হয়। EF Core ডেটাবেসের সাথে সম্পর্ক স্থাপন, ডেটা ম্যানিপুলেশন এবং মাইগ্রেশন প্রক্রিয়া সরল করে দেয়। LINQ এর মাধ্যমে কোডে SQL-এর মত কুয়েরি করা যায়, এবং CRUD অপারেশন সহজেই করা যায়। এছাড়া, ফর্ম এবং ডেটা ভ্যালিডেশন প্রক্রিয়াগুলি সঠিক ইনপুট নিশ্চিত করতে সাহায্য করে।
Entity Framework Core (EF Core) হলো একটি ওপেন সোর্স, ক্রস-প্ল্যাটফর্ম ORM (Object-Relational Mapping) ফ্রেমওয়ার্ক, যা .NET Core অ্যাপ্লিকেশনগুলোর জন্য ডেটাবেস অ্যাক্সেস সহজ করে তোলে। EF Core-এর মাধ্যমে ডেভেলপাররা সম্পর্কিত ডেটাবেসের সাথে কার্যকরীভাবে কাজ করতে পারেন, তবে তারা SQL কোড না লিখে C# কোড ব্যবহার করে ডেটাবেস অপারেশনগুলো সম্পাদন করতে পারেন। এটি LINQ (Language Integrated Query) ব্যবহার করে ডেটা রিট্রাইভ, ইনসার্ট, আপডেট এবং ডিলিট করার সুবিধা দেয়।
EF Core মূলত Entity Framework এর পরবর্তী ভার্সন, যা .NET Core প্ল্যাটফর্মের জন্য বিশেষভাবে উন্নয়ন করা হয়েছে এবং পূর্ববর্তী ভার্সন থেকে আরও বেশি দ্রুত, ছোট ও ক্রস-প্ল্যাটফর্ম সমর্থনকারী।
Product
টেবিল EF Core এর মাধ্যমে Product
ক্লাসের সাথে সম্পর্কিত হবে।LINQ (Language Integrated Query)
EF Core LINQ সাপোর্ট করে, যার মাধ্যমে C# কোডের মধ্যেই ডেটাবেস কোয়েরি করা সম্ভব। এটি ডেভেলপারদের SQL কোড না লিখে সিম্পল C# কোডে ডেটাবেস অপারেশন করতে সাহায্য করে। উদাহরণস্বরূপ:
var products = context.Products
.Where(p => p.Price > 100)
.ToList();
EF Core ডেটাবেসের সাথে যোগাযোগ করার জন্য সাধারণত DbContext ক্লাস ব্যবহার করা হয়, যা ডেটাবেসের সাথে ইনটের্যাক্ট করতে ডেভেলপারকে সাহায্য করে। DbContext ডেটাবেসের সাথে সম্পর্কিত মডেল ক্লাসগুলো (Entities) এবং ডেটাবেস টেবিলের মধ্যে ম্যাপিং করে।
public class ApplicationDbContext : DbContext
{
public DbSet<Product> Products { get; set; }
public DbSet<Customer> Customers { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer("ConnectionStringHere");
}
}
এখানে, Product
এবং Customer
দুটি মডেল ক্লাস, যেগুলো ডেটাবেসের টেবিলের সাথে ম্যাপ করা হয়েছে। OnConfiguring
মেথডে ডেটাবেসের সংযোগ স্ট্রিং (Connection String) কনফিগার করা হয়।
EF Core ব্যবহারের মাধ্যমে ডেটাবেসে ডেটা Create, Read, Update, এবং Delete (CRUD) অপারেশন করা যায়।
var product = new Product { Name = "Laptop", Price = 1000 };
context.Products.Add(product);
context.SaveChanges();
এখানে, Product
অবজেক্ট তৈরি করা হয়েছে এবং Add
মেথডের মাধ্যমে ডেটাবেসে সন্নিবেশিত হয়েছে।
var products = context.Products.Where(p => p.Price > 500).ToList();
এটি Price
500 এর বেশি এমন সকল Product
অবজেক্ট রিটার্ন করবে।
var product = context.Products.First(p => p.Id == 1);
product.Price = 1200;
context.SaveChanges();
এটি Id = 1
এর Product
অবজেক্টের মূল্য পরিবর্তন করবে এবং SaveChanges
মেথডের মাধ্যমে সেই পরিবর্তন ডেটাবেসে সেভ করবে।
var product = context.Products.First(p => p.Id == 1);
context.Products.Remove(product);
context.SaveChanges();
এটি Id = 1
এর Product
অবজেক্ট ডেটাবেস থেকে মুছে ফেলবে।
Entity Framework Core একটি শক্তিশালী ORM ফ্রেমওয়ার্ক যা ডেভেলপারদের SQL কোড লিখা ছাড়াই ডেটাবেস অপারেশন সম্পাদন করতে সহায়তা করে। এটি ডেভেলপমেন্টে গতি আনে, কোডের সঠিকতা বাড়ায় এবং ডেটাবেস স্কিমা ও ডেটা ম্যানেজমেন্ট সহজ করে। EF Core বিশেষভাবে .NET Core অ্যাপ্লিকেশনের জন্য ডিজাইন করা, যা ক্রস-প্ল্যাটফর্ম সাপোর্ট করে এবং মাইগ্রেশন ও ডেটাবেস অপটিমাইজেশনের সুবিধা দেয়।
DbContext এবং Database Migrations হল Entity Framework Core (EF Core)-এর দুটি প্রধান অংশ, যা ডেটাবেসের সাথে কাজ করার প্রক্রিয়াকে সহজ করে তোলে। DbContext ডেটাবেসের সাথে যোগাযোগের মাধ্যম হিসেবে কাজ করে এবং Migrations ডেটাবেসের স্কিমা পরিবর্তন এবং তার সাথে সম্পর্কিত কনফিগারেশনগুলো ট্র্যাক করে। চলুন, এগুলো সম্পর্কে বিস্তারিত জানি।
DbContext EF Core-এর কেন্দ্রীয় অংশ। এটি ডেটাবেসের সাথে কাজ করার জন্য ব্যবহৃত হয় এবং DbSet প্রপার্টি ব্যবহার করে ডেটাবেস টেবিলের সাথে সম্পর্ক স্থাপন করে।
DbContext ক্লাস তৈরি করা:
DbContext তৈরি করার জন্য আপনাকে একটি ক্লাস তৈরি করতে হবে যেটি DbContext থেকে ইনহেরিট করবে। এতে আপনার মডেল ক্লাসগুলো DbSet হিসেবে সংজ্ঞায়িত করতে হবে।
উদাহরণ:
public class ApplicationDbContext : DbContext
{
public DbSet<Customer> Customers { get; set; }
public DbSet<Order> Orders { get; set; }
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{ }
}
এখানে Customers
এবং Orders
হল DbSet, যা ডেটাবেসের টেবিলের সাথে সম্পর্কিত।
Migrations হল ডেটাবেসের স্কিমার মধ্যে পরিবর্তন ট্র্যাক করার একটি প্রক্রিয়া। যখন আপনি নতুন মডেল তৈরি করেন বা বিদ্যমান মডেলে কোনো পরিবর্তন আনেন, তখন EF Core Migrations তৈরি করে, যা ডেটাবেসের স্কিমা পরিবর্তনের জন্য প্রয়োজনীয় কমান্ডগুলো তৈরি করে। মাইগ্রেশনগুলির মাধ্যমে ডেটাবেসের আপডেট করা হয়, এবং এটি ডেটাবেস এবং কোডের মধ্যে সিঙ্ক্রোনাইজেশন বজায় রাখে।
মাইগ্রেশন তৈরি করা:
প্রথমে, আপনি যখন মডেলে কোনো পরিবর্তন করবেন (যেমন নতুন প্রপার্টি বা ক্লাস যোগ করা), তখন আপনাকে একটি নতুন মাইগ্রেশন তৈরি করতে হবে। এটি করতে নিচের কমান্ড ব্যবহার করা হয়:
dotnet ef migrations add InitialCreate
এই কমান্ডটি একটি মাইগ্রেশন ফাইল তৈরি করবে, যা ডেটাবেসের স্কিমা পরিবর্তনের জন্য প্রয়োজনীয় কোড ধারণ করবে।
ডেটাবেস আপডেট করা:
একবার মাইগ্রেশন তৈরি হলে, আপনি dotnet ef database update
কমান্ড ব্যবহার করে ডেটাবেসে সেই মাইগ্রেশন প্রয়োগ করতে পারবেন। এটি ডেটাবেসে নতুন স্কিমা পরিবর্তন আনবে।
dotnet ef database update
মাইগ্রেশন ফাইলটি একটি C# ক্লাস যা দুটি মেথড ধারণ করে:
এখানে একটি উদাহরণ:
public partial class InitialCreate : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "Customers",
columns: table => new
{
Id = table.Column<int>(nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
Name = table.Column<string>(nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_Customers", x => x.Id);
});
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "Customers");
}
}
এখানে Up() মেথডে একটি Customers
টেবিল তৈরি করা হয়েছে, এবং Down() মেথডে ঐ টেবিলটি মুছে ফেলার নির্দেশনা দেওয়া হয়েছে।
মাইগ্রেশন ফিরিয়ে আনা:
কখনও কখনও, আপনি একটি মাইগ্রেশন রোলব্যাক করতে চাইলে dotnet ef migrations remove কমান্ড ব্যবহার করতে পারেন, যা শেষ তৈরি হওয়া মাইগ্রেশনটি বাতিল করে।
dotnet ef migrations remove
মাইগ্রেশন ইতিহাস দেখা:
আপনি dotnet ef migrations list কমান্ড ব্যবহার করে বর্তমানে সমস্ত মাইগ্রেশন ফাইলের একটি তালিকা দেখতে পারেন।
dotnet ef migrations list
DbContext EF Core-এ ডেটাবেসের সাথে সম্পর্ক স্থাপনের প্রধান উপাদান, যা আপনার মডেল এবং ডেটাবেস টেবিলের মধ্যে ম্যাপিং করে। Migrations ডেটাবেসের স্কিমা পরিবর্তন ট্র্যাক এবং প্রয়োগ করার প্রক্রিয়া, যা ডেটাবেস এবং কোডের মধ্যে সিঙ্ক্রোনাইজেশন বজায় রাখে। মাইগ্রেশন তৈরি, আপডেট এবং রোলব্যাক করার মাধ্যমে আপনি সহজেই ডেটাবেসের স্কিমা পরিবর্তন করতে পারবেন। EF Core এ এই দুটি টুল ব্যবহারের মাধ্যমে ডেটাবেসের কার্যক্রম সহজ, দ্রুত, এবং দক্ষভাবে পরিচালিত হয়।
LINQ (Language Integrated Query) হল .NET ফ্রেমওয়ার্কে একটি শক্তিশালী টুল যা আপনাকে C# বা VB.NET কোডের মধ্যে সরাসরি ডেটা কুয়েরি করতে সহায়তা করে। LINQ ব্যবহার করে আপনি ডেটাবেস, XML, বা ইন-মেমরি কালেকশনগুলোর উপরে কুয়েরি লিখতে পারেন। এর মাধ্যমে আপনি SQL বা অন্য কোনো ডেটাবেস কুয়েরি ভাষার মতোই C# ভাষায় ডেটা রিট্রাইভ, ফিল্টার, গ্রুপ বা অর্ডার করতে পারেন।
LINQ এর প্রধান সুবিধা হল যে, এটি এক ধরনের টাইপ-সেফ (Type-Safe) কুয়েরি লেখা প্রক্রিয়া, যা আপনাকে কম্পাইল টাইমে ভুল চিহ্নিত করতে সহায়তা করে।
LINQ দুটি প্রধান প্রকারে বিভক্ত:
LINQ এ কুয়েরি লেখার জন্য দুটি প্রধান সিনট্যাক্স ব্যবহার করা হয়:
Query Syntax খুবই SQL-এর মতো। এটি সাধারণত ডেটা ফিল্টারিং, গ্রুপিং বা অর্ডার করার জন্য সহজ এবং পড়তে সুবিধাজনক।
var result = from student in students
where student.Age > 18
orderby student.Name
select student;
উপরের উদাহরণে, students
কালেকশন থেকে সকল ছাত্রকে নির্বাচন করা হয়েছে যাদের বয়স ১৮ এর বেশি, এবং তারপর তাদের নাম অনুসারে সাজানো হয়েছে।
Method Syntax LINQ এর মেথড কলিং এর মাধ্যমে কুয়েরি লেখার একটি পদ্ধতি। এটি একটু বেশি কোডেড এবং অনেক ক্ষেত্রে LINQ এর মেথডগুলোর উপযোগিতা বেশি হয়।
var result = students.Where(s => s.Age > 18)
.OrderBy(s => s.Name)
.Select(s => s);
এখানে Where
, OrderBy
, এবং Select
মেথড ব্যবহার করা হয়েছে, যা একই কাজ Query Syntax এর মতোই করে।
LINQ-এ সাধারণত যে সব অপারেশন ব্যবহার করা হয় তা নিচে ব্যাখ্যা করা হল:
Where: ডেটা ফিল্টার করার জন্য ব্যবহৃত হয়।
var adults = students.Where(s => s.Age > 18);
Select: ডেটার নির্দিষ্ট অংশ নির্বাচন করার জন্য ব্যবহৃত হয়।
var studentNames = students.Select(s => s.Name);
OrderBy: ডেটা সাজানোর জন্য ব্যবহৃত হয়।
var orderedStudents = students.OrderBy(s => s.Name);
GroupBy: ডেটাকে গ্রুপে ভাগ করার জন্য ব্যবহৃত হয়।
var studentsGroupedByAge = students.GroupBy(s => s.Age);
Join: দুটি ডেটা কালেকশনকে একত্রিত করার জন্য ব্যবহৃত হয়।
var studentCourses = from student in students
join course in courses on student.CourseId equals course.Id
select new { student.Name, course.Name };
First: প্রথম উপাদান নির্বাচন করে।
var firstStudent = students.First();
ToList: কুয়েরি ফলাফলকে একটি লিস্টে রূপান্তরিত করে।
var studentList = students.Where(s => s.Age > 18).ToList();
LINQ এবং Entity Framework একসাথে ব্যবহৃত হয় ডেটাবেস কুয়েরি করার জন্য। এখানে LINQ কুয়েরি Entity Framework এর মাধ্যমে ডেটাবেসে পাঠানো হয়, এবং এটি SQL কুয়েরিতে রূপান্তরিত হয়ে ডেটাবেসে কার্যকর হয়।
var students = dbContext.Students
.Where(s => s.Age > 18)
.OrderBy(s => s.Name)
.ToList();
এখানে dbContext.Students
Entity Framework এর মাধ্যমে ডেটাবেসের Students
টেবিলকে রেফার করে এবং LINQ কুয়েরি ডেটাবেসের উপরে কার্যকর হয়।
LINQ .NET এর একটি শক্তিশালী বৈশিষ্ট্য যা ডেটাবেস, ইন-মেমরি কালেকশন এবং XML ফাইলের মতো ডেটা সোর্সের উপর কার্যকর কুয়েরি চালাতে সাহায্য করে। এটি Query Syntax এবং Method Syntax এর মাধ্যমে লেখা যায় এবং এতে ডেটা ফিল্টারিং, গ্রুপিং, অর্ডারিং এবং জয়নিং এর মতো অপারেশন সমর্থিত। LINQ-এর মাধ্যমে ডেটা আরো সহজ, টাইপ-সেফ এবং কার্যকরভাবে প্রক্রিয়া করা সম্ভব।
CRUD (Create, Read, Update, Delete) অপারেশন হল ডেটাবেস অ্যাপ্লিকেশন বা সফটওয়্যার অ্যাপ্লিকেশনগুলির মৌলিক কার্যকলাপ। এগুলি ডেটা পরিচালনার জন্য ব্যবহৃত হয় এবং অধিকাংশ ওয়েব অ্যাপ্লিকেশন এবং সফটওয়্যার সিস্টেমে এই অপারেশনগুলোর প্রয়োজন পড়ে।
ASP.NET Core-এ CRUD অপারেশনগুলো Entity Framework Core (EF Core) ব্যবহার করে খুব সহজে সম্পন্ন করা যায়। EF Core হল একটি ORM (Object-Relational Mapping) টুল, যা ডেটাবেসের সাথে কাজ করার জন্য একটি আবস্ট্রাক্ট লেয়ার প্রদান করে। এটি SQL কমান্ড লেখার পরিবর্তে অবজেক্ট-ভিত্তিক কোড ব্যবহার করতে সাহায্য করে।
এখানে, CRUD অপারেশনগুলো কিভাবে ASP.NET Core অ্যাপ্লিকেশন ব্যবহার করে পরিচালনা করা যায়, তা দেখানো হবে।
Create অপারেশনটি নতুন ডেটা তৈরি করার জন্য ব্যবহৃত হয়। উদাহরণস্বরূপ, একটি নতুন Product
তৈরি করা।
কোড উদাহরণ:
[HttpPost]
public IActionResult CreateProduct([FromBody] Product product)
{
if (ModelState.IsValid)
{
_context.Products.Add(product);
_context.SaveChanges();
return CreatedAtAction(nameof(GetProduct), new { id = product.Id }, product);
}
return BadRequest(ModelState);
}
এখানে, [HttpPost] অ্যাট্রিবিউট ব্যবহার করা হয়েছে, যা নির্দেশ করে এই অ্যাকশনটি HTTP POST রিকুয়েস্টে কাজ করবে। Product
অবজেক্টটি HTTP রিকুয়েস্টের বডি থেকে মডেল বাইন্ডিংয়ের মাধ্যমে আসবে এবং সেটি ডেটাবেসে সংরক্ষণ করা হবে।
Read অপারেশনটি ডেটাবেস থেকে ডেটা পড়ার জন্য ব্যবহৃত হয়। সাধারণত এটি GET রিকুয়েস্টের মাধ্যমে সম্পন্ন করা হয়।
কোড উদাহরণ:
[HttpGet("{id}")]
public IActionResult GetProduct(int id)
{
var product = _context.Products.Find(id);
if (product == null)
{
return NotFound();
}
return Ok(product);
}
এখানে, [HttpGet("{id}")] অ্যাট্রিবিউটটি একটি GET রিকুয়েস্টের জন্য রাউটিং কনফিগার করে, যাতে id
প্যারামিটার দ্বারা নির্দিষ্ট একটি Product
রিটার্ন করা হয়। _context.Products.Find(id)
কোডটি ডেটাবেস থেকে সেই নির্দিষ্ট id
এর প্রোডাক্টটি খুঁজে বের করে।
Update অপারেশনটি পূর্বের ডেটা আপডেট করার জন্য ব্যবহৃত হয়। এটি সাধারণত PUT বা PATCH HTTP পদ্ধতি ব্যবহার করে করা হয়।
কোড উদাহরণ:
[HttpPut("{id}")]
public IActionResult UpdateProduct(int id, [FromBody] Product product)
{
var existingProduct = _context.Products.Find(id);
if (existingProduct == null)
{
return NotFound();
}
existingProduct.Name = product.Name;
existingProduct.Price = product.Price;
_context.SaveChanges();
return NoContent();
}
এখানে, [HttpPut("{id}")] অ্যাট্রিবিউট PUT রিকুয়েস্টে ব্যবহৃত হয় এবং নির্দিষ্ট id
এর Product
অবজেক্টটিকে আপডেট করে। ডেটাবেসে সঞ্চিত পুরানো ডেটাকে নতুন ডেটা দিয়ে প্রতিস্থাপন করা হয় এবং তারপর পরিবর্তনগুলি _context.SaveChanges() এর মাধ্যমে ডেটাবেসে সেভ করা হয়।
Delete অপারেশনটি ডেটাবেস থেকে ডেটা মুছে ফেলার জন্য ব্যবহৃত হয়। এটি সাধারণত DELETE HTTP পদ্ধতির মাধ্যমে করা হয়।
কোড উদাহরণ:
[HttpDelete("{id}")]
public IActionResult DeleteProduct(int id)
{
var product = _context.Products.Find(id);
if (product == null)
{
return NotFound();
}
_context.Products.Remove(product);
_context.SaveChanges();
return NoContent();
}
এখানে, [HttpDelete("{id}")] অ্যাট্রিবিউট DELETE রিকুয়েস্টের জন্য ব্যবহৃত হয়। এই অ্যাকশনটি নির্দিষ্ট id
এর Product
ডেটা খুঁজে পায় এবং তা ডেটাবেস থেকে মুছে ফেলে। এরপর পরিবর্তনগুলি _context.SaveChanges() এর মাধ্যমে সেভ করা হয়।
ASP.NET Core এবং Entity Framework Core ব্যবহার করে CRUD অপারেশনগুলি খুব সহজে এবং দ্রুত সম্পন্ন করা সম্ভব। এর মাধ্যমে আপনি ডেটাবেসের সাথে ইন্টারঅ্যাক্ট করতে পারবেন এবং ওয়েব অ্যাপ্লিকেশনগুলোর কার্যকরী ফাংশনালিটি তৈরি করতে পারবেন।
common.read_more